Electronic database programs are used in a wide variety of business applications. Virtually all forms of business activity including personnel and product management involve the creation, storage, and management of data. With the advent of computer networks, distributed database processing has evolved so that multiple different users have access to the same database from their individual computers.
Most business databases are large, complex programs that are stored on a central server computer and maintained by dedicated database administrators. As business operations become more complex and the amount and type of data becomes greater and more varied, the creation and administration of databases becomes a greater responsibility for these business organizations.
In a typical client/server model, applications are designed as collections of client and server processes that communicate with one another. Server processes provide a defined service and interact with clients by accepting and responding to their requests. A relational database is a common type of application that is used in a client/server environment. Relational databases store data in the form of tables that allow the data to be viewed and retrieved in many different ways. Relational databases, however, often require complex queries to join together data that may be stored in different tables. Relational databases also often require extensive indexes to maintain the relationships among the various tables and data. Such indexes are prone to failure, thus requiring maintenance to reestablish these relationships.
Another disadvantage of present database systems is that complex databases with many potential users and large amounts of data require large amounts of computing resources and administrative personnel to maintain the data and network connections.